a11y: Fix up listener registration minimally
authorMatthias Clasen <mclasen@redhat.com>
Mon, 5 Sep 2011 15:54:41 +0000 (11:54 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 5 Sep 2011 15:56:54 +0000 (11:56 -0400)
For god-knows-what reason, at-spi is trying various formats
of strings when registering listeners, triggering g_warnings()
from gailutil code. Stop doing that.

Also, don't leak temporary string arrays that are a side-effect
of passing parameters around as formatted strings.

https://bugzilla.gnome.org/show_bug.cgi?id=658168

gtk/a11y/gailutil.c

index e9ca92b007815f1b37044d8f334fe7223fb5cf9c..8cba1c21f3be85a6afd82646e0bb29b64beb9fba 100644 (file)
@@ -81,12 +81,12 @@ add_listener (GSignalEmissionHook  listener,
         }
       else
         {
-          g_warning("Invalid signal type %s\n", signal_name);
+          g_warning ("Invalid signal type %s\n", signal_name);
         }
     }
   else
     {
-      g_warning("Invalid object type %s\n", object_type);
+      g_warning ("Invalid object type %s\n", object_type);
     }
   return rc;
 }
@@ -271,7 +271,10 @@ gail_util_add_global_event_listener (GSignalEmissionHook  listener,
 
   split_string = g_strsplit (event_type, ":", 3);
 
-  rc = add_listener (listener, split_string[1], split_string[2], event_type);
+  if (g_strv_length (split_string) == 3)
+    rc = add_listener (listener, split_string[1], split_string[2], event_type);
+
+  g_strfreev (split_string);
 
   return rc;
 }
@@ -301,19 +304,19 @@ gail_util_remove_global_event_listener (guint remove_listener)
           }
         else
           {
-            g_warning("Invalid listener hook_id %ld or signal_id %d\n",
-              listener_info->hook_id, listener_info->signal_id);
+            g_warning ("Invalid listener hook_id %ld or signal_id %d\n",
+                       listener_info->hook_id, listener_info->signal_id);
           }
       }
     else
       {
-        g_warning("No listener with the specified listener id %d",
-          remove_listener);
+        g_warning ("No listener with the specified listener id %d",
+                   remove_listener);
       }
   }
   else
   {
-    g_warning("Invalid listener_id %d", remove_listener);
+    g_warning ("Invalid listener_id %d", remove_listener);
   }
 }